Hive |
您所在的位置:网站首页 › Hive 连接条件只能用on › Hive |
Hive只支持等值连接,即ON子句中使用等号连接,不支持非等值连接。 Hive内置的数据存储类型,TextFile, SequenceFile, ORC(列式存储) 如果连接语句中有WHERE子句,会先执行JOIN子句,再执行WHERE子句。[吴超1] 假设有以下测试数据 表user数据如下 User_id name 1 张三 2 李四 3 王五 表job数据如下 Job_id job user_id 1 工程师 1 2 美工 2 3 美工 4 建表语句如下 CREATE TABLE IF NOT EXISTS user(id int, name string) ROW FORMATDELIMITED FIELDS TERMINATED BY ‘\t’; CREATE TABLE IF NOT EXISTS job(id int, job string, user_id int) ROWFORMAT DELIMITED FIELDS TERMINATED BY ‘\t’;
10.1.1. 内连接 内连接指的是把符合两边连接条件的数据查询出来。 执行以下语句 select * from user join job on user.id=job.user_id; 结果如下
10.1.2. 左外连接 左外连接:左边有,右边如果没有数据,那么为空。 执行以下语句 select * from user left outer join job on user.id=job.user_id; 不能使用let join,只能使用left outerjoin。结果如下
10.1.3. 右外连接 执行以下语句 select * from user right outer join job on user.id=job.user_id; 结果如下
10.1.4. 全外连接 执行以下语句 select * from user full outer join job on user.id=job.user_id; 结果如下
10.1.5. 左半连接 执行以下语句,左半连接用来代替in操作或者exists操作的 select * from user left semi join job on user.id=job.user_id; 结果如下
该语句相当于如下语句 select * from user where id in (select user_id from job); 但是,hive不支持in子句。所以只能变通,使用left semi子句。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |